package com.homestead.service;

import com.homestead.domain.dos.CouponThemeCache;

import javax.validation.constraints.NotNull;
import java.util.Map;
import java.util.Set;

/**
 * @author yhb
 * @date 2021-06-10 8:35
 */
public interface CouponThemeCacheService {

    /**
     * 添加缓存
     * @param couponThemeCache 券活动缓存bean
     */
    void add(@NotNull CouponThemeCache couponThemeCache);

    /**
     * 更新指定字段属性值到couponThemeCache中
     * @param couponThemeCache 不为null的字段将update入缓存
     * @return true/false
     */

    boolean updateById(CouponThemeCache couponThemeCache);
    /**
     * 获取coupon_theme表的缓存
     * @param couponThemeId 券活动主键id
     * @return 券活动缓存bean all字段
     */
    CouponThemeCache getById(Long couponThemeId);

    /**
     * 获取coupon_theme表指定字段的缓存
     * @param couponThemeId 券活动主键id
     * @param selectedFields 需要获取的字段set
     * @return couponThemeCache缓存数据 选中字段
     */
    CouponThemeCache getSelectedFieldsById(Long couponThemeId, Set<CouponThemeCache.FIELDS> selectedFields);

    /**
     * 判断couponThemeId是否被标记为不存在
     * @param couponThemeId 券活动主键id
     * @return true:被标记了 false: 未被标记
     */
    boolean couponThemeIdIsMarkedAsNotExist(Long couponThemeId);
}
